The present invention relates generally to storing graphics data, and specifically to storing graphics data in video memory for subsequent display.
The use of graphics processors to receive and render graphics data is well known in the computer industry. The use of multiple graphics processors, each of which are responsible for rendering a portion of a frame, have also been proposed to provide increased graphics processing performance. However, data bandwidth capabilities often limit performance of both single and multiple processor systems.
Application programs are responsible for providing the data required for each frame rendered. Generally speaking, when rendering 3D images, each frame contains object data and texture data. Object data defines the shapes of the images displayed, while texture data is used to fill the objects with specific fill data. Large amounts of data are required to render an individual frame, depending upon the complexity of the image being rendered. The application program, which is executed by the system processor, is responsible for providing this data. A noticeable glitch, such as a pause, occurs when the amount of image data required for a data frame is greater than the amount of data that can be sent in an undetectable amount of time by the application program over the system bus.
The use of memory caches in graphics processors is one way of reducing the amount of data transferred. With a data cache, the most recently used graphics data is stored in a memory cache for quick future accessibility based on the assumption that recently used data is likely to be used again in the near future. The effectiveness of a memory cache depends upon the size of the cache and the characteristics of the graphics image.
Therefore, a system and/or method that is capable of improving the quality of viewed video data and bandwidth utilization would be beneficial.